﻿using ST.Torch.WebApi.Core.Entities.DaTi;
using System.Linq.Expressions;


namespace ST.Torch.WebApi.Application.DaTi.Services;

public interface  ID_GiftService
{
	#region curd
	void Insert(D_Gift entity);


	Task InsertAsync(D_Gift entity, string[] Includes = null);

	void Update(D_Gift entity, string[] Includes = null);

	Task UpdateAsync(D_Gift entity, string[] Includes = null);

	void Delete(D_Gift entity, bool IsSoft = false);

	Task DeleteAsync(D_Gift entity, bool IsSoft = false);
    bool Any(Expression<Func<D_Gift, bool>> predicate);


    Task<bool> AnyAsync(Expression<Func<D_Gift, bool>> predicate);

    D_Gift Single(Expression<Func<D_Gift, bool>> predicate, bool tracking = false);

	Task<D_Gift> SingleAsync(Expression<Func<D_Gift, bool>> predicate, bool tracking = false);

	List<D_Gift> Query(Expression<Func<D_Gift, bool>> predicate, bool tracking = false);

	Task<List<D_Gift>> QueryAsync(Expression<Func<D_Gift, bool>> predicate, bool tracking = false);


	PagedList<D_Gift> QueryPage(Expression<Func<D_Gift, bool>> predicate, PageReq page, bool tracking = false);

	Task<PagedList<D_Gift>> QueryPageAsync(Expression<Func<D_Gift, bool>> predicate, PageReq page, bool tracking = false);
	




	#endregion
}
